1. Field of the Invention
The invention is related to computers and computer technology, and in particular, to computer instructions.
2. Background Information
A xe2x80x9cprocessxe2x80x9d typically has control over computer resources such as files, input/output (I/O) devices, etc. A process may be referred to sometimes as a xe2x80x9ctask.xe2x80x9d A computer xe2x80x9cprogramxe2x80x9d is a series of step-by-step xe2x80x9cinstructionsxe2x80x9d to tell a computer what to do), usually stored in computer memory. A computer xe2x80x9cprocessorxe2x80x9d executes the instructions specified in the program. The processor reads (or fetches) instructions from memory one at a time and executes each instruction. Program execution consists of repeating the process of instruction fetch and instruction execution. An xe2x80x9cinstruction cyclexe2x80x9d refers to the steps required for a single instruction, which is instruction fetch and instruction execution.
Operating systems can support one or more threads. As used herein a xe2x80x9cthreadxe2x80x9d refers to a sequence of instructions that can run independently for a while and, in this context, a thread may be referred to as a xe2x80x9cprocess.xe2x80x9d
A single threaded operating system is an operating system that can run one thread only (or the operating system does not recognize the concept of a threads). Single threaded operating systems are well known (e.g., Microsoft DOS).
A multithreaded operating system is an operating system that can execute two or more threads in parallel. An example of a multithreaded operating system is Windows NT(copyright) operating system available from Microsoft(copyright) Corporation of Redmond, Wash. In a multithreaded operating system, the user sees several threads running in parallel. However, the number of actually running threads at each cycle depends on the number of logical processors that constitutes the system.
The number of logical processors depends on the number of real processors in the system and on the number of logical processors in each real processor. A multithreaded processor can viewed as one more or more logical processors.
A single threaded processor is a processor that can maintain only one running thread at a certain execution cycle. Single threaded processors are well known.
A multithreaded processor is a processor that is theoretically divided into two or more logical processors. One logical processor executes instructions from one thread and other logical processors execute instructions from other threads. An example multithreaded processor is an EV8 (Alpha Processor 21464) promised from Compaq Computer Corporation in Houston, Tex., which also may be referred to as a simultaneous multithreaded (SMT) processor. In SMT, the processor can run more than one thread simultaneously. SMT therefore can issue and execute multiple instructions from multiple threads each instruction cycle. A multithreaded operating system can operate on a single threaded processor, a multi processor system, or a simultaneous multithreaded processor.
A processor may slow down a process from time to time if the process about to be executed is not important from a performance perspective. This may be the case with so-called xe2x80x9cbusy loopsxe2x80x9d typical of idle tasks, which tend to disproportionately and undesirably consume computer resources by performing a particular task repeatedly and aggressively.
One way a process can signal a processor to slow itself down is for the process to issue a PAUSE instruction. The PAUSE instruction allows a process to tell the processor that the process has a lower priority than other processes. The PAUSE instruction temporarily suspends the process such that the processor can allocate more resources to processes that are more important. The PAUSE instruction delays execution of the nexts instructions for a period of time. As a result, the processor can allocate more resources to processes that are not idle. The processor can thereby execute those processes faster because there is less competition for computer resources. Originally, the PAUSE instruction is intended to slow down low-priority processes running on SMT processors.